(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

p(s(N)) → N
+(N, 0) → N
+(s(N), s(M)) → s(s(+(N, M)))
*(N, 0) → 0
*(s(N), s(M)) → s(+(N, +(M, *(N, M))))
gt(0, M) → False
gt(NzN, 0) → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0) → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0, N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0)
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0
gcd(0, N) → 0
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Rewrite Strategy: FULL

(1) RenamingProof (EQUIVALENT transformation)

Renamed function symbols to avoid clashes with predefined symbol.

(2) Obligation:

Runtime Complexity Relative TRS:
The TRS R consists of the following rules:

p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

S is empty.
Rewrite Strategy: FULL

(3) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)

Infered types.

(4) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

(5) OrderProof (LOWER BOUND(ID) transformation)

Heuristically decided to analyse the following defined symbols:
+', *', gt, d, quot, gcd

They will be analysed ascendingly in the following order:
+' < *'
gt < quot
gt < gcd
d < quot
d < gcd

(6) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

The following defined symbols remain to be analysed:
+', *', gt, d, quot, gcd

They will be analysed ascendingly in the following order:
+' < *'
gt < quot
gt < gcd
d < quot
d < gcd

(7) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

Induction Base:
+'(gen_s:0'3_0(0), gen_s:0'3_0(0)) →RΩ(1)
gen_s:0'3_0(0)

Induction Step:
+'(gen_s:0'3_0(+(n5_0, 1)), gen_s:0'3_0(+(n5_0, 1))) →RΩ(1)
s(s(+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)))) →IH
s(s(gen_s:0'3_0(*(2, c6_0))))

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(8) Complex Obligation (BEST)

(9) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

The following defined symbols remain to be analysed:
*', gt, d, quot, gcd

They will be analysed ascendingly in the following order:
gt < quot
gt < gcd
d < quot
d < gcd

(10) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)

Induction Base:
*'(gen_s:0'3_0(+(1, 0)), gen_s:0'3_0(+(1, 0)))

Induction Step:
*'(gen_s:0'3_0(+(1, +(n537_0, 1))), gen_s:0'3_0(+(1, +(n537_0, 1)))) →RΩ(1)
s(+'(gen_s:0'3_0(+(1, n537_0)), +'(gen_s:0'3_0(+(1, n537_0)), *'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0)))))) →IH
s(+'(gen_s:0'3_0(+(1, n537_0)), +'(gen_s:0'3_0(+(1, n537_0)), *4_0)))

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(11) Complex Obligation (BEST)

(12) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

The following defined symbols remain to be analysed:
gt, d, quot, gcd

They will be analysed ascendingly in the following order:
gt < quot
gt < gcd
d < quot
d < gcd

(13) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)

Induction Base:
gt(gen_s:0'3_0(0), gen_s:0'3_0(0)) →RΩ(1)
False

Induction Step:
gt(gen_s:0'3_0(+(n35359_0, 1)), gen_s:0'3_0(+(n35359_0, 1))) →RΩ(1)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) →IH
False

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(14) Complex Obligation (BEST)

(15) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

The following defined symbols remain to be analysed:
d, quot, gcd

They will be analysed ascendingly in the following order:
d < quot
d < gcd

(16) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)

Induction Base:
d(gen_s:0'3_0(0), gen_s:0'3_0(0)) →RΩ(1)
gen_s:0'3_0(0)

Induction Step:
d(gen_s:0'3_0(+(n35748_0, 1)), gen_s:0'3_0(+(n35748_0, 1))) →RΩ(1)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) →IH
gen_s:0'3_0(0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(17) Complex Obligation (BEST)

(18) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

The following defined symbols remain to be analysed:
quot, gcd

(19) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol quot.

(20) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

The following defined symbols remain to be analysed:
gcd

(21) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol gcd.

(22) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

No more defined symbols left to analyse.

(23) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

(24) BOUNDS(n^1, INF)

(25) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)
d(gen_s:0'3_0(n35748_0), gen_s:0'3_0(n35748_0)) → gen_s:0'3_0(0), rt ∈ Ω(1 + n357480)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

No more defined symbols left to analyse.

(26) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

(27) BOUNDS(n^1, INF)

(28) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)
gt(gen_s:0'3_0(n35359_0), gen_s:0'3_0(n35359_0)) → False, rt ∈ Ω(1 + n353590)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

No more defined symbols left to analyse.

(29) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

(30) BOUNDS(n^1, INF)

(31) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)
*'(gen_s:0'3_0(+(1, n537_0)), gen_s:0'3_0(+(1, n537_0))) → *4_0, rt ∈ Ω(n5370)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

No more defined symbols left to analyse.

(32) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

(33) BOUNDS(n^1, INF)

(34) Obligation:

TRS:
Rules:
p(s(N)) → N
+'(N, 0') → N
+'(s(N), s(M)) → s(s(+'(N, M)))
*'(N, 0') → 0'
*'(s(N), s(M)) → s(+'(N, +'(M, *'(N, M))))
gt(0', M) → False
gt(NzN, 0') → u_4(is_NzNat(NzN))
u_4(True) → True
is_NzNat(0') → False
is_NzNat(s(N)) → True
gt(s(N), s(M)) → gt(N, M)
lt(N, M) → gt(M, N)
d(0', N) → N
d(s(N), s(M)) → d(N, M)
quot(N, NzM) → u_11(is_NzNat(NzM), N, NzM)
u_11(True, N, NzM) → u_1(gt(N, NzM), N, NzM)
u_1(True, N, NzM) → s(quot(d(N, NzM), NzM))
quot(NzM, NzM) → u_01(is_NzNat(NzM))
u_01(True) → s(0')
quot(N, NzM) → u_21(is_NzNat(NzM), NzM, N)
u_21(True, NzM, N) → u_2(gt(NzM, N))
u_2(True) → 0'
gcd(0', N) → 0'
gcd(NzM, NzM) → u_02(is_NzNat(NzM), NzM)
u_02(True, NzM) → NzM
gcd(NzN, NzM) → u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM)
u_31(True, True, NzN, NzM) → u_3(gt(NzN, NzM), NzN, NzM)
u_3(True, NzN, NzM) → gcd(d(NzN, NzM), NzM)

Types:
p :: s:0' → s:0'
s :: s:0' → s:0'
+' :: s:0' → s:0' → s:0'
0' :: s:0'
*' :: s:0' → s:0' → s:0'
gt :: s:0' → s:0' → False:True
False :: False:True
u_4 :: False:True → False:True
is_NzNat :: s:0' → False:True
True :: False:True
lt :: s:0' → s:0' → False:True
d :: s:0' → s:0' → s:0'
quot :: s:0' → s:0' → s:0'
u_11 :: False:True → s:0' → s:0' → s:0'
u_1 :: False:True → s:0' → s:0' → s:0'
u_01 :: False:True → s:0'
u_21 :: False:True → s:0' → s:0' → s:0'
u_2 :: False:True → s:0'
gcd :: s:0' → s:0' → s:0'
u_02 :: False:True → s:0' → s:0'
u_31 :: False:True → False:True → s:0' → s:0' → s:0'
u_3 :: False:True → s:0' → s:0' → s:0'
hole_s:0'1_0 :: s:0'
hole_False:True2_0 :: False:True
gen_s:0'3_0 :: Nat → s:0'

Lemmas:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

Generator Equations:
gen_s:0'3_0(0) ⇔ 0'
gen_s:0'3_0(+(x, 1)) ⇔ s(gen_s:0'3_0(x))

No more defined symbols left to analyse.

(35) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
+'(gen_s:0'3_0(n5_0), gen_s:0'3_0(n5_0)) → gen_s:0'3_0(*(2, n5_0)), rt ∈ Ω(1 + n50)

(36) BOUNDS(n^1, INF)